
import { isArr } from './isArr'
import { safeGet } from './safeGet'
/**
 * 返回一个函数，该函数返回任何传入对象的指定属性
 * const obj = { a: { b: 1 } };
   property('a')(obj); // -> {b: 1}
   property(['a', 'b'])(obj); // -> 1
 * @param {*} path 
 */
export function property (path) {
  
  function shallowProperty (key) {
    return function (obj) {
      return obj == null ? void 0 : obj[key];
    };
  }
  
  if (!isArr(path)) return shallowProperty(path);
  return function (obj) {
    return safeGet(obj, path);
  };
}